<h1>The Truth about SE</h1>

<p>Random notes. Not done yet.

<p>This site is devoted to simplicity, to minimalism in
programming. Why is that even interesting?

<p>Here's the deal. Software engineering researchers and developers
work in a culture that rewards complexity, not simplicity.

<p>More later. Whorf's hypothesis. Language as a weapon. Burnett's
history of programming languages. COCOMO numbers (language doesn't
matter).  Les Hatten (inheritance is bad).

<p>Keys results: massive simplicatations are possible.

<p>Counter-case: Guy Steele's LISP intepreters. Domain-specific
languages. shows that minor changes to the langauge have major impacts
on their utility and expressability. but here's the thing- should be
redone for every new domain. art of the meta-object protocol.

<p>
Note that I am no luddite. I come to this view after decades of programming
in leading edge, even bleeding edge languages. In 1988, I wrote Australia's
 first exported knowledge-based
system (in a logic prgramming language). 
Based on that, I was hired to work on high-end LISP machines writing
expert systems for the insurance industry. From there, I spend a decade being
an object-oriented evangelist. 
If you keeping count, that means I was a commerically successful programmer
in logic programming, functional programming, and object-oriented programming
at a time when none of those skills were considered mainstream or marketable.

<p>
From http://www.codinghorror.com/blog/archives/000051.html
<ul>
<li>
At the 1972 Turing Award lecture, Edsger Dijkstra delivered a paper titled "The Humble Programmer." He argued that most of programming is an attempt to compensate for the strictly limited size of our skulls. The people who are best at programming are the people who realize how small their brains are. They are humble. The people who are the worst at programming are the people who refuse to accept the fact that their brains aren't equal to the task. Their egos keep them from being great programmers. The more you learn to compensate for your small brain, the better a programmer you'll be. The more humble you are, the faster you'll improve.
<li>
The purpose of many good programming practices is to reduce the load on your gray cells. You might think that the high road would be to develop better mental abilities so you wouldn't need these programming crutches. You might think that a programmer who uses mental crutches is taking the low road. Empirically, however, it's been shown that humble programmers who compensate for their fallibilities write code that's easier for themselves and others to understand and that has fewer errors. The real low road is the road of errors and delayed schedules.
</ul>
